Semana 5 (Semestre 2)

Anadi lo que viene siendo la fuerza armonica angular, el cual, como siempre tuve problemas, parace que no funciona del todo bien, pero al imprimir el angulo entre las particulas, esta si logra mantenerse oscilando entre el angulo deseado, el angulo con el que probe fue de 160 grados, considero que otro valor mas grande lo unico que lograra sera que explote la simulacion, al menos que agregue una constante mas pequena.

particle_simulation5.gif

Captura desde 2024-09-04 16-29-42.png

Refactor y sistema sobre amortiguado

En esta version, intente meter algunas funciones dentro de otros archivos y hacer un poco mas legible y no tener todo en un solo archivo, ademas se implemento el sistema sobre amortiguado que luce algo asi.

particle_simulation_6.gif
An un angulo de 90 grados.
particle_simulation7.gifA 180 grados. La cual es la posicion inicial y no deberia haber cambio.particle_simulation8.gif
Ahora, si agregamos una particula mas, la cual no hace ningun juego con alguna fuerza angular, esto se ve asi. ESto es una simulacion con 6 particulas, con un angulo de 100 grados.
particle_simulation9.gif
Lo cual hace sentido.
Ahora, todavia falta agregar interaccion entre particulas de diferentes cadenas, asi que no se vera muy bien la eficacia del codigo, pero podremos observar la eficacia de las fuerzas en cada cadena.particle_simulation10.gif

Interaccion de cadena en cadena

COnsidero que esta sera una implementacion dificil, ya que tenemos que hacer que cada particula interaccione con cada particula de cada cadena pero sin interactuar con las particula de su propia cadena.particle_simulation.gif.

Angulos diferentes

Al implementer angulos diferentes para cada cadena, medio funciona. El problema ahora es que a 180 grados, al menos de la cadena de abajo, hace cosas muy extranas, esto me hace pensar que la implementacion de los angulos no esta del todo bien, pero aun no logro deducir que es exactamente, lo unico que puedo lograr a observar es que la fuerza se esta aplicando unicamente en una sola direccion y es por eso que hace un giro completo. A demas de esto, parece que debo implementar interaccion entre cada particula de la misma cadena, en caso de que haya alguna colision.
particle_simulation11.gif
Al agregar un angulo de 170 grados a la cadena inferior y 100 grados a la cadena superior, esto sucede. No se logra ver alguna anomalia.
particle_simulation12.gif
Al poner un angulo de 170 grados en la primera cadena, este tipo de comportamiento tampoco sucede.
particle_simulation13.gif
Parece ser que pude solucionar el problema, como la direccion de la fuerza siempre esta apuntando a un solo lado (en mi implementacion), y debido a que el angulo entre particulas se mide de igual forma los cuadrantes en los que se encuentren. Habia un momento en que la magnitud era positiva mientras la direccion apuntaba en la misma direccion, no habia direccion de vector que contrarestara por asi decirlo.
Para eso, cree un angulo absoluto que mide el angulo de la particula a partir del angulo 0, y si este angulo sobrepasa los 180 grados, entonces se invierte la direccion del vector unitario.
Obteniendo esto.
particle_simulation14.gif